package com.ctshk.rpc.order.custom.entity;

import com.baomidou.mybatisplus.annotation.TableName;

import java.math.BigDecimal;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ctshk.common.model.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 游客信息
 * </p>
 *
 * @author 叶冠峰
 * @since 2021-02-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_customized_order_tourist_info")
@ApiModel(value="CustomizedOrderTouristInfo对象", description="游客信息")
public class CustomizedOrderTouristInfo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "所属订单")
    private Long orderId;

    @ApiModelProperty(value = "团期ID")
    private Long scheduleId;

    @ApiModelProperty(value = "所属组ID")
    private Long groupId;

    @ApiModelProperty(value = "所属房间ID")
    private Long roomId;

    @ApiModelProperty(value = "所属套餐")
    private Long packageId;

    @ApiModelProperty(value = "套餐名称")
    private String packageName;

    @ApiModelProperty(value = "1 游客2 导游3 领队")
    private Integer peopleType;

    @ApiModelProperty(value = "游客类型主数据ID")
    private Long mainDataId;

    @ApiModelProperty(value = "游客类型名称")
    private String touristTypeName;

    @ApiModelProperty(value = "中文姓名")
    private String cnName;

    @ApiModelProperty(value = "中文姓")
    private String cnSurname;

    @ApiModelProperty(value = "中文全名")
    private String cnFullname;

    @ApiModelProperty(value = "英文名称")
    private String enName;

    @ApiModelProperty(value = "英文姓")
    private String enSurname;

    @ApiModelProperty(value = "英文全名")
    private String enFullname;

    @ApiModelProperty(value = "性别")
    private Integer gender;

    @ApiModelProperty(value = "国籍id")
    private Long nationId;

    @ApiModelProperty(value = "国籍")
    private String nation;

    @ApiModelProperty(value = "电话区号")
    private String mobileAreaCode;

    @ApiModelProperty(value = "联系方式")
    private String mobile;

    @ApiModelProperty(value = "出生日期")
    private LocalDate birthday;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "证件类型id")
    private Long certificateTypeId;

    @ApiModelProperty(value = "证件类型id2")
    private Long certificateTypeId2;

    @ApiModelProperty(value = "证件类型id3")
    private Long certificateTypeId3;

    @ApiModelProperty(value = "证件类型")
    private String certificateType;

    @ApiModelProperty(value = "证件号")
    private String certificateNumber;

    @ApiModelProperty(value = "证件有效期")
    private LocalDate certificateValidDate;

    @ApiModelProperty(value = "证件签发地id")
    private Long certificatePlaceId;

    @ApiModelProperty(value = "证件签发地")
    private String certificatePlace;

    @ApiModelProperty(value = "紧急联系人姓名")
    private String emergencyContactName;

    @ApiModelProperty(value = "紧急联系人电话区号")
    private String emergencyMobileAreaCode;

    @ApiModelProperty(value = "紧急联系人电话")
    private String emergencyMobile;

    @ApiModelProperty(value = "团费")
    private BigDecimal groupFee;

    @ApiModelProperty(value = "付款状态(1 待付款 2 待付余款 3 已付全款)")
    private Integer payStatus;

    @ApiModelProperty(value = "NoShow")
    @TableField("noShow")
    private Integer noshow;

    @ApiModelProperty(value = "渠道来源主数据ID")
    private Long channelId;

    @ApiModelProperty(value = "锁定状态")
    private Integer lockStatus;

    @ApiModelProperty(value = "1：签证办理为托我司办理,2：签证办理为游客自理")
    private Integer buyVisa;

    @ApiModelProperty(value = "是否购买保险")
    private Integer buyInsurance;

    @ApiModelProperty(value = "保险ID")
    private Long insuranceId;

    @ApiModelProperty(value = "保险名称")
    private String insuranceName;

    @ApiModelProperty(value = "应收")
    private BigDecimal totalReceivables;

    @ApiModelProperty(value = "实收")
    private BigDecimal totalPaidIn;

    @ApiModelProperty(value = "已退款")
    private BigDecimal refundAmount;

    @ApiModelProperty(value = "代收费用")
    private BigDecimal collectionFee;

    @ApiModelProperty(value = "调整费用")
    private BigDecimal adjustmentCost;

    @ApiModelProperty(value = "其他金额")
    private BigDecimal otherAmount;

    @ApiModelProperty(value = "已出单据金额")
    private BigDecimal receiptedAmount;

    @ApiModelProperty(value = "未收")
    private BigDecimal remainingReceivables;

    @ApiModelProperty(value = "是否完善资料")
    private Integer isFullInfo;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "修改人")
    private Long modifiedId;

    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;

    @ApiModelProperty(value = "证件类型2")
    private String certificateType2;

    @ApiModelProperty(value = "证件类型3")
    private String certificateType3;

    @ApiModelProperty(value = "证件号2")
    private String certificateNumber2;

    @ApiModelProperty(value = "证件号3")
    private String certificateNumber3;

    @ApiModelProperty(value = "证件签发地2id")
    private Long certificatePlaceId2;

    @ApiModelProperty(value = "证件签发地3id")
    private Long certificatePlaceId3;

    @ApiModelProperty(value = "证件签发地2")
    private String certificatePlace2;

    @ApiModelProperty(value = "证件签发地3")
    private String certificatePlace3;

    @ApiModelProperty(value = "证件有效期2")
    private LocalDate certificateValidDate2;

    @ApiModelProperty(value = "证件有效期3")
    private LocalDate certificateValidDate3;

    @ApiModelProperty(value = "是否收据计算过印花税（0 否，1 是）")
    private Integer isReceiptCalculated;

    @ApiModelProperty(value = "旅客代收费用json")
    private String collectionFeeJson;

}
